// ScriptEnvironment.h

#pragma once

#include "stdafx.h"

using namespace System;
using namespace System::Collections::Generic;
using namespace System::Linq;
using namespace System::Runtime::InteropServices;

namespace BlunderBrain{ namespace AviSynth{ namespace Interop{

	public ref class ScriptEnvironment
	{
	public:
		ScriptEnvironment();
		~ScriptEnvironment();
		!ScriptEnvironment();

		String ^GetVariable(String ^name);
		IList<String^>^ GetInternalFunctions();
		IList<String^>^ GetPluginFunctions();
		String^ GetFunctionParameterSpec(String^ functionName);

	private:
		IScriptEnvironment* m_scriptEnvironment;
		Object ^m_syncObj;
	};
}}}
